﻿using Common.Communication;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Common.Device.Interfaces
{
    public interface IGeChaoJi : IDevice
    {
        /// <summary>
        ///空命令
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<bool> GetCMD_NULL(int channel = 1);
        /// <summary>
        /// 初始化模式
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<int> GetCMD_R_INIT(int channel = 1);
        /// <summary>
        /// 开始测试模式
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<int> GetCMD_T_BEGIN(int channel = 1);
        /// <summary>
        /// 采集电压读参数
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<int[]> GetCMD_R_PARA(int channel = 1);
        /// <summary>
        /// 读端口输入
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<int[]> GetCMD_R_INPUT(Enums.GeChaoJiEnum.DianPinMode mode, int channel = 1);
        /// <summary>
        /// 测试通讯端口
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<int[]> GetCMD_T_COMMPORT( int channel = 1);
        /// <summary>
        /// 升降电机测试
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<int> GetCMD_T_LIFTMOTOR(Enums.GeChaoJiEnum.DianJiMode DianJiMode, int channel = 1);
        /// <summary>
        /// 测试行走电机
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<double[]> GetCMD_T_WALKMOTOR(Enums.GeChaoJiEnum.DianJiMode DianJiMode, int channel = 1);
        /// <summary>
        /// 测试割草电机
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<double> GetCMD_T_MOWMOTOR(Enums.GeChaoJiEnum.DianJiMode DianJiMode, int channel = 1);
        /// <summary>
        /// CMD_T_END
        /// </summary>
        /// <param name="channel">通道</param>
        /// <returns></returns>
        Result<bool> GetCMD_T_END(int channel = 1);
        
    }
}
